#pragma once
#ifndef OBR_TRIANGLEMESHDATA_H
#define OBR_TRIANGLEMESHDATA_H

#include "../DScommon.h"

namespace OBR
{

/**
 * @brief vertex info including world position, normal and texture UV
 *
 */
struct Vertex
{
    float3 pos;    // world position
    float3 n;      // world normal
    float2 tex_uv; // Texture UV
};

/**
 * @brief triangle info including vertex ids and corresponding material id
 *
 */
struct Triangle
{
    uint vertexes[3]; // Vertex IDs
    uint mesh_id;     // ID of current mesh
};

struct TriangleMeshData
{
    size_t num_total_vertex;
    size_t num_total_triangle;
    Vertex *vertexes;
    Triangle *triangles;
};

} // namespace OBR

#endif
